1. Field of the Invention
The present invention relates to a packet data access control apparatus supplied with a transport stream composed of a plurality pieces of packet data, the apparatuses for determining, on a real-time basis, whether each packet data is the subject of a predetermined process (target data) and, when the data is the target data, enabling the predetermined process. More specifically, the packet data access control apparatus is incorporated in a transport stream decoder for enabling various applications to perform their respective processes on each packet data.
2. Description of the Related Art
Processing and editing digital contents for subsidiary use have been possible only by contents creators or distributors such as broadcast stations. With advances in recent digital technology, however, the situation has gradually changed. In recent years, digital distribution systems have been progressing in quality and quantity, thereby bringing significant progress in transport stream for distributing digital contents, improvement in performance of hardware required for user's operation, and reduction in cost for the operation. As a result, processing that used to be available only to broadcast stations, etc., such as editing a transport stream and packet data composing the transport stream, gradually has become available to users.
To enable the user to carry out a desired process on each digital content, what is required is a means capable of selecting, on a real-time basis, packet data composing a sequentially-supplied transport stream, and allowing access from processing means for carrying out the specific process on the selected packet data.
Example means and apparatus capable of identifying and selectively extracting respective packet data composing a transport stream are illustrated in FIG. 34. A transport stream decoder shown in this drawing extracts only a packet data group composing a specific program from a single transport stream composed of packet data strings forming a plurality of programs, and outputs the extracted packet data group to an AV decoder. In other words, as described later, the transport stream decoder is provided with a means for selectively extracting specific packet data from a plurality of packet data composing a single transport stream.
The transport stream decoder TDAc includes a stream input unit 500 for receiving a transport stream TS supplied from a transport stream source externally provided (not shown), a program packet filter PCF, a main memory controller 700C, main memory 900C, and a TD controller TDCc for controlling the entire operation of the transport stream decoder TDAc.
Prior to description of these components, described is the single transport stream TS supplied to the transport stream decoder TDAc with reference to FIG. 7. The transport stream TS is composed of a plurality of packet data P each represented by a rectangle in FIG. 7. Each packet data is provided with a unique packet identifier (Packet ID) PID for identification.
These packet data P are grouped into three types: program content packet data (herein after referred to as PC packet data) Pc, which is a component of α (α is an integer not less than 2) types of program contents; a program map table PMT containing the packet identifiers PID of the plurality of PC packet data Pc for the respective programs to manage PC packet data Pc; and a program association table PAT containing the packet identifiers PID of the program map tables PMT for the respective programs to manage the program contents.
The program map table PMT and the program association table PAT containing information for managing the PC packet data Pc are collectively called management packet data PcA. Illustrated in FIG. 7 is an example structure of the transport stream TS when at least three different programs 1, 2, and 3 are provided (α≧3).
PC packet data Pc101_1, Pc101_2, . . . are video data for the program 1, and PC packet data Pc111_1, Pc111_2, . . . are audio data for the program 1. Similarly, PC packet data Pc201_1, Pc201_2, . . . are video data for the program 2, and PC packet data Pc211_1, Pc211_2, . . . are audio data for the program 2.
Furthermore, PC packet data Pc301_1, Pc301_2, . . . are video data for the program 3, and PC packet data Pc311_1, Pc311_2, . . . are audio data for the program 3. The PC packet data containing video data is generally called program content video packet data (herein after, video packet data) PcV, and the PC packet data containing audio data is generally called program content audio packet data (herein after, audio packet data) PcS.
The number of distributed programs (α) is not restricted to three. The transport stream TS includes PC packet data Pc as many as required corresponding to the number of distributed programs. Furthermore, the PC packet data Pc may contain information other than audio (teletext information, for example) depending on the program.
More specifically, the transport stream TS is structured so that the program association table PAT and the program map tables PMT are arranged among the PC packet data Pc at frequencies determined by the transmission path and processing factors. In FIG. 7, program map tables PMT1, PMT2, and PMT3 and the program association table PAT are arranged preceding the plurality of PC packet data Pc101_1, Pc111_1, Pc201_1, Pc211_1, Pc_301, and Pc311_1 composing the three types of programs 1, 2, and 3. The program map tables PMT1, PMT2, and PMT 3 respectively describe the packet identifiers PID of the PC packet data Pc for the respective programs. The program association table PAT indicates a correspondence among the packet identifiers PID of these program map tables PMTs.
Note that, in Specification, the same components or signals are provided with a common reference character or numeral for identification. To identify the respective components or signals, the reference character or numeral is further provided with a numerical or alphabetical suffix. More specifically, the PC packet data Pc101 is a common name for PC packet data Pc101_1, Pc101_2, . . . , Pc101_β (β is an arbitrary natural number). The same goes for the PC packet data Pc111, Pc201, Pc211, Pc301, and Pc401.
The program association table PAT describes the packet identifiers PID of the program map tables PMT for all programs included in the transport stream TS. That is, the packet identifier PID of the program map table PMT for the program 1 is 100, the one for the program 2 is 200, the one for the program 3 is 300, and the one for the program α is α00.
Furthermore, preceding PC packet data Pc101_2, Pc111_2, Pc201_2, Pc211_2, Pc301_2, and Pc311_2, management packet data PcA composed of the program map tables PMT1, PMT2, PMT3 and program association table PAT is arranged. Note that, when the transport stream TS includes four or more programs (α≧4) although not shown, the management packet data PcA further contains program map tables PMT4 to PMTα, and the transport stream TS further contains PC packet data Pc corresponding to these programs.
How frequently the management packet data PcA appears greatly varies depending upon the type of the packet data P contained in the transport stream TS. Moreover, the management packet data PcA does not have to be placed as the head of a collection of the packet data P as typically illustrated in FIG. 7. In some cases, the program association table PAT and the program map tables PMT composing the management packet data and the PC packet data Pc may have some other packet data P inserted thereamong.
Referring back to FIG. 34, described is the components of the transport stream decoder TDAc. The stream input unit 500C temporarily holds, in an input buffer incorporated therein, the transport stream TS supplied from an external transport stream source (not shown), and transfers the transport stream TS to the program packet filter PCF by a transfer unit TSd.
The program packet filter PCF includes at least three packet filters: a packet filter 1100_00 for selectively outputting only the management packet data PcA; a packet filter 1100_01 for selectively outputting only the video packet data PcV of a specific program; and a packet filter 1100_02 for selectively outputting only the audio packet data PcS of the specific program. These packet filters output data based on the packet identifiers PID provided to the respective PC packet data Pc transferred by the transfer unit TSd from the stream input unit 500C. Note herein that the management packet data PcA and the PC packet data Pc (PcV, PcS) composing a specific program that are extracted from the entire packet data P contained in the incoming transport stream TS are collectively referred to as a single program packet data string Pes.
As stated above, when three types of packet filters included in the program packet filter PCF have to be respectively identified for extracting the management packet data PcA, the video packet data PcV, and the audio packet data PcS, they are denoted as the management packet filter 1100_00, the video packet filter 1100_01, and the audio packet filter 1100_02. When they do not have to be identified particularly, they are denoted simply as the packet filter 1100.
The program packet filters PCF are provided according to the number of content types γ (γ is a natural number) composing a program to be extracted. That is, based on the number of types of the PC packet data Pc to be extracted, packet filters 1100_01 to 1100_0γ and a management packet filter 1100_00 for extracting the management packet data PcA from the transport stream TS are provided. In short, γ+1 packet filters 1100_00 to 1100_0γ are provided. For convenience in description, assume herein that only three types of packet filters are provided: the management packet filter 1100_00, the video packet filter 1100_01, and the audio packet filter 1100_02.
From the PC packet data Pc composing a plurality of programs contained in the transport stream TS, the management packet data PcA (PAT, PMT1, PMT2, and PMT3), and video packet data PcV (Pc101_1, Pc101_2, . . . ) and audio packet data PcS (Pc111_1, Pc111_2, . . . ) composing the program 1 are sequentially extracted by the management packet filter 1100_00, the video packet filter 1100_01, and the audio packet filter 1100_02, respectively, in the order in which they arrived at the transport stream decoder TDAc.
The extracted program association table PAT, program map tables PMT1, PMT2, and PMT3, and PC packet data Pc101_1, Pc111_1, Pc101_2, Pc111_2, . . . are sequentially outputted to the main memory controller 700C as a selected single program packet data string Pes in the order in which they arrived at the transport stream decoder TDAc.
As such, the program packet filter PCF can individually identify the packet data of the incoming transport stream TS on a real-time basis for selective extraction.
The main memory controller 700C temporarily holds, by the transfer unit TSd, the selected single program packet data string Pes supplied from the program packet filter PCF. The main memory controller 700C also controls the main memory 900C so that the management packet data PcA and the selected single program packet data string Pes are stored in predetermined areas as the management packet data PcA, a single program video content packet data string (herein after, SP video packet data string) PssV and a single program audio content packet data string (herein after, SP audio packet data string) PssS.
In other words, the main memory 900C identifies each packet data P included in the selected single program packet data string Pes coming from the program packet filter PCF through the main memory controller 700C as either one of the management packet data PcA, the video packet data PcV, and the audio packet data PcS. The packet data P identified as the management packet data PcA is stored in the main memory 900C as the management packet data PcA, the one identified as the video packet data PcV is stored therein as the SP video packet data string PssV, the one identified as the audio packet data PcV is stored therein as the SP audio packet data string PssS.
Moreover, the main memory controller 700C reads the SP video packet data string PssV and the SP audio packet data string PssS from the main memory 900C, temporarily holds them by the transfer unit TSd, and then outputs them as a single program packet data string Pss to an external device typified by an AV decoder 2000C.
The transport stream decoder TDAc generates a state signal SrWC indicating the state of operation of each of the above described components for output to the TD controller TDCc. Based on the state signal SrWC, the TD controller TDCc generates a control signal ScWC for controlling the operation of each component in the transport stream decoder TDAc for output to the transport stream decoder TDAc.
As such, the TD controller TDCc controls the entire operation of the transport stream decoder TDAc for sequentially extracting, from the single transport stream TS supplied to the transport stream decoder TDAc, only the PC packet data Pc of a single program in the order in which they arrived, and outputting the extracted data as the single program packet data string Pss to the external device such as the AV decoder 2000C. The AV decoder 2000C sequentially decodes the video packet data PcV and the audio packet data PcS contained in the inputted single program packet data string Pss to generate a video/audio signal Sav for viewing by users.
Illustrated in FIG. 35 is an example of the selected single program packet data string Pes composed of the PC packet data Pc (the video packet data PcV and the audio packet data PcS) and the management packet data PcA (PAT and PMT) extracted from three programs included in the single transport stream TS having the packet structure shown in FIG. 7. In this example, only the PC packet data Pc101_1, Pc111_1, Pc101_2, Pc111_2, . . . for the program 1 and their program association tables PAT and the program management table PMT are extracted as the extracted packet data string Pse, and outputted from the program packet filter PCF to the main memory controller 700C.
In some cases, the program management tables for the programs the user has not specified may be extracted, such as the program management tables PMT2 and PMT3 of the program 2 and the program 3. As such, from the plurality of packet data P sequentially arranged on the input transport stream TS, only the packet data P corresponding to the specified program is discretely extracted.
Shown in FIG. 36 is an example of how the PC packet data Pc contained in the selected single program packet data string Pes are stored in the main memory 900C. The main memory 900C has a video packet storage area A(video) for storing PC packet data (video packet data PcV) Pc101_1, Pc101_2, Pc101_3, Pc101_4, . . . , and an audio packet storage area A(audio) for storing PC packet data (audio packet data PcS) Pc111_1, Pc111_2, Pc111_3, Pc111_4, . . . . Furthermore, for the management packet data PcA, the main memory 900C has a PAT storage area A(PAT) for storing information about the program association table PAT and PMT storage areas A(PMTα) for storing information about the program management tables PMT. Specifically, the program management table PMT1 of the program 1 is stored in a PMT storage area A(PMT1).
The PC packet data (video packet data PcV) Pc101_1, Pc101_2, Pc101_3, Pc101_4, . . . are sequentially stored in the video packet storage area A(video) to construct a SP video packet data string PssV. Similarly, the PC packet data (audio packet data PcS) Pc111_1, Pc111_2, Pc111_3, Pc111_4, . . . are sequentially stored in the audio packet storage area A(audio) to construct the SP audio packet data string PssS.
The SP video packet data string PssV and the SP audio packet data string PssS thus constructed in the main memory 900C are read by the main memory controller 700C as a SP packet data string Pss as exemplarily illustrated in FIG. 37, and then outputted to the AV decoder 2000C.
The above-constructed conventional transport stream decoder sufficiently works for reproducing only a single program from a single input transport stream and also presenting it to users. This is because the AV decoder sequentially only has to decode the plurality of packet data P contained in the SP packet data string Pss composing the single program in the order in which they came. However, the above transport stream decoder cannot support the following three types of reproduction irrespectively of whether the reproduced program is presented to users.
(Reproduction Type 1)
Only a single transport stream is allowed to be inputted, that is, only a single stream input section is provided. From the transport stream, a plurality of programs are to be reproduced.
(Reproduction Type 2)
A plurality of transport streams are allowed to be inputted, that is, a plurality of stream input sections are provided. This reproduction type is further classified into the following six types 2-1 to 2-6.
Type 2-1: Only a single program is to be reproduced from each of the transport streams.
Type 2-2: A plurality of programs are to be simultaneously reproduced from each of the transport streams
Type 2-3: Only a single program is to be reproduced from a specific one of the transport streams.
Type 2-4: A plurality of programs are to be simultaneously reproduced from a specific one of the transport streams.
Type 2-5: A plurality of programs are to be simultaneously reproduced from several specific ones of the transport streams.
Type 2-6: Only a single program is to be reproduced from several specific ones of the transport streams.
(Reproduction Type 3)
A data process is carried out by a unit of the packet data P (Pc, PAT, PMT) contained in the selected single program packet data string Pes extracted from the transport stream. Such data process includes processing the PC packet data Pc, the program association table PAT, or the program map data PMT itself, and carries out different processes on the respective packet data P.
Described specifically below are reasons why the conventional transport stream decoder cannot be applied to the above reproduction types.
In reproduction type 1, of a plurality of programs simultaneously reproduced from the single transport stream TS, a desired specific program has to be presented to the user in a user-desired manner. In this case, which PC packet data Pc mixed in the selected single program packet data string Pes or the single program packet data string Pss correspond to which program has to be identifiable and manageable, and the identification/management results can be so presented to be usable as information.
As stated above, the conventional transport stream decoder can extract the program map tables PMT of the plurality of programs. Therefore, it is possible to know of which program the single transport stream TS contains which PC packet data Pc. However, the program packet filter PCF, filters the received plurality of PC packet data Pc composing a single specific program merely with their packet identifiers PID. Therefore, the PC packet data Pc of the programs other than the specific program cannot exist in the selected single program packet data string Pes. Accordingly, the programs corresponding to the respective PC packet data Pc and the identification/management results cannot be obtained.
In Reproduction type 2, a plurality of transport streams TS can be simultaneously supplied. That is, the respective stream input sections can be supplied with σ (σ is a positive integer not less than 2) types of transport streams TS_1 to TS_σ differed in type, scheme, or supplier. Under such circumstances, in either of Type 2-1 (a single program is to be reproduced from the transport streams TS_1 to TS_σ), Type 2-3 (a single program is to be reproduced from a specific one of the transport streams TS_1 to TS_σ), and Type 2-6 (a single program is to be reproduced from several ones of the transport streams TS_1 to TS_σ), the transport stream TS containing the program to be reproduced has to be identified, and which PC packet data Pc in the selected single program packet data string Pes or the single program packet data string Pss corresponds to which transport stream TS also has to be identifiable. Such identification cannot be made by the conventional transport stream decoder, as described above.
Moreover, in either of Type 2-2 (a plurality of programs are to be simultaneously reproduced from the transport streams TS_1 to TS_σ), Type 2-4 (a plurality of programs are to be simultaneously reproduced from specific one of the transport streams TS_1 to TS_σ), and Type 2-5 (a plurality of programs are to be simultaneously reproduced from several specific ones of the transport streams TS_1 to TS_σ), which packet data P contained in the selected signal program packet data string Pes corresponds to which of the transport streams TS_1 to TS_σ and to which program has to be identifiable. Such identification cannot be made by the conventional transport stream decoder either, as described above.
In Reproduction type 3, as requested by the user, different processes may be carried out on the respective packet data P (Pc, PAT, PMT) corresponding to the programs contained in the transport stream TS. By way of example only, consider a case where the user desires to view one program and store another program in a storage device. In this case, the PC packet data Pc corresponding to the one program is simply outputted in sequence, and decoded by the AV decoder 2000C for output at a monitor, while the PC packet data Pc corresponding to the other program is so processed as that a new transport stream TSr (now shown) containing the PC packet data Pc is constructed according to transfer requirements for the storage device and peripheral devices. For the latter, for the purpose of generating the new transport stream TSr from the PC packet data Pc, the above-stated identification/management information has to be required. This identification/management information is also required when the packet data P itself has to be processed as required, for specifying packet data P to be processed and correctly managing the processed packet data. However, such identification and management cannot be made by the conventional transport stream decoder, as described above.
As has been described, the conventional transport stream decoder is suitable for reproducing a single program for a single transport stream. However, the conventional decoder cannot identify, by program, the PC packet data Pc of the plurality of programs contained in a single transport stream.
When a plurality of transport streams are supplied, in addition to that the PC packet data Pc cannot be identified by program, the transport streams cannot be distinguished, and which PC packet data of the program to be reproduced corresponds to which transport stream cannot also be identified.
As such, the conventional transport stream decoder cannot be used for reproducing a plurality of programs irrespectively of the input transport stream is single or plural. When a plurality of transport streams are supplied, the conventional decoder cannot be used even for reproducing a single program.
Furthermore, in either of the above reproduction types, irrespectively of whether the transport stream is single or plural, for carrying out processes on the respective programs reproduced from the input transport stream(s) TS, an interface for corresponding to each process has to be provided for each packet filter. Consequently, such problems will arise as increase in size and complication in construction of the device, increase in processing load, flexibility to change in specification or process requested, and increase in cost.
In view of the above problems, the present invention is to provide a packet data processing determination apparatus for identifying on a real-time basis whether packet data composing an input transport stream is to be subjected to a specific process, and indicating the specific process to be applied to each packet data as such.